// var a = []
// for (let i = 0; i < 10; i++) {
//   a[i] = function () {
//     console.log(i)
//   }
// }
// a[6]()
// 在调用a[]方法时，for 循环已经结束，此时i变成10，所以无论调用a[]的多少，结果都是10

// var tmp = 123
// if(true) {
//   console.log(tmp)
//   let tmp
// }
//报错，let声明变量，只在当前代码块有效，而在let tmp声明之前，找不到tmp，所以报错


// var array = [12,34,32,89,4]

// function findMin(arr) {
//   var tmp = Array.from(new Set(arr))
//   return Math.min(...tmp)
// }
// findMin(array)



// var a = 10 
// var obj = {
//   a:20,
//   fn(){
//     setTimeout(function(){
//       console.log(this.a)
//     });
//   }
// }
// obj.fn()
// this指向obj


// Symbol:Symbol 可以创建一个独一无二的值,可用于创建私有成员

// 深拷贝和浅拷贝都只针对引用数据类型，浅拷贝会对对象逐个成员依次拷贝，但只复制内存地址，而不复制对象本身，新旧对象成员还是共享同一内存；深拷贝会另外创建一个一模一样的对象，新对象跟原对象不共享内存，修改新对象不会改到原对象。

// 区别：浅拷贝只复制对象的第一层属性，而深拷贝会对对象的属性进行递归复制。